
/*************
author:: libo
license:: MIT
*****************/

#ifndef LIB_CELL_TRAITS_H
#define LIB_CELL_TRAITS_H

//表示我要处理的是单形cell(要弃用这个宏)
#define SIMPLEX_REQUIRE
//表示我要按照流形的标准来处理
#define MANIFOLD_REQUIRE
#define template_v Vertex
#define template_f Face
#define template_c Cell
#define template_hf HalfFace

#define template_m Mesh
#include<stdlib.h>
#include <tools_node.h>
#include <tools_vector.h>
#include<stdio.h>
#ifndef SAFE_FREE
#define SAFE_FREE(x) if(x!=NULL){free(x);x=NULL;}
#endif
#ifdef __cplusplus
extern "C"{
#endif
typedef struct VertexT{
    char type;
    // int id;
    // void* prop;
}VertexT;
typedef struct CellT{
    char type;
    // int id;
    // void* prop;
}CellT;
typedef struct MeshT{
    char type;
    // int id;
    // void* prop;
}MeshT;
typedef struct FaceT{
    char type;
    // int id;
    // void* prop;

}FaceT;
typedef struct HalfT{
    char type;
    // int id;
    // void* prop;
}HalfT;
void vertexT_init(VertexT* vt);
void cellT_init(CellT* ct);
void meshT_init(MeshT*mt);
void faceT_init(FaceT*ft);
void halfT_init(HalfT*ht);
#ifdef __cplusplus
}
#endif
#endif
